import axios from "axios";
import type { AxiosRequestConfig, AxiosResponse } from "axios";


// 环境的切换
console.log('==',import.meta.env.VITE_APP_BASE_API);
// // http://172.16.5.101:8451/#/index/dashboard/page1
// if (process.env.NODE_ENV === "development") {
// 	// 开发
// 	// axios.defaults.baseURL = '/proxy';
// 	axios.defaults.baseURL = "http://103.114.89.178:8450/";// TMK外网地址
	
// } else if (process.env.NODE_ENV === "production") {
// 	//生产
// 	axios.defaults.baseURL = "http://172.16.5.101:8450/Dapi/";//TMK内网地址
// 	// 图片地址全局修改，http://172.16.0.14:81/ TMK_CUT
	
// }
const service = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_API,
    timeout: 120000
  })
// 请求超时时间
// axios.defaults.timeout = 120000;
// 添加请求拦截器
service.interceptors.request.use(
    function (config: AxiosRequestConfig): any {
      // @ts-ignore
      config.headers["Content-Type"] = "application/json;charset=utf-8";
      return config;
    },
    function (error: any) {
      // 对请求错误做些什么
      console.log(error);
      return Promise.reject(error);
    }
  );

  /**
 * @响应拦截
 */
service.interceptors.response.use(
    (response: AxiosResponse) => {
      // console.log("response", response);
      if (response.status === 200) {
        return Promise.resolve(response);
        } else {
            return Promise.reject(response);
        }
    },
    (error: any) => {
      console.log("error", error);
      if (error.response.status) {
        switch (error.response.status) {
            // 401: 未登录
            // 未登录则跳转登录页面，并携带当前页面的路径
            // 在登录成功后返回当前页面，这一步需要在登录页操作。
            case 401:
                // Toast({
                // 	message: '未登录！',
                // 	duration: 1500,
                // 	forbidClick: true
                // });
                // location.replace('/login');
                break;
            // 403 token过期
            // 登录过期对用户进行提示
            // 清除本地token和清空vuex中token对象
            // 跳转登录页面
            case 404:
                alert("网络请求不存在！");
                break;
            // 其他错误，直接抛出错误提示
            default:
                alert(error.response.data.message);
                // this.$message.error(error.response.data.message);
        }
        return Promise.reject(error.response);
        }
    }
  );


 
// export const get = (url:any,params:any) => {
//     return service.get(url, { params });
// };

// export const post = (url:any,params:any) => {
//     return service.post(url, { params });
// };
  /**
 * get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
//   const get = ((url:any,params:any)=>{
//     return new Promise((resolve, reject) => {
// 		axios.get(
// 				url,{params: params}
// 			).then((res) => {
// 				resolve(res.data);
// 			})
// 			.catch((err) => {
// 				reject(err.data);
// 			});
// 	});
// })

/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
// const post = ((url:any,params:any)=>{
//     return new Promise((resolve, reject) => {
// 		axios.post(url, params, {
// 				timeout: 120000,
// 			})
// 			.then((res) => {
// 				resolve(res.data);
// 			})
// 			.catch((err) => {
// 				reject(err.data);
// 			});
// 	});
// })

export default service;